20230419

您所在的位置:网站首页 rsync 同步多个目录 20230419

20230419

2023-04-24 22:42| 来源: 网络整理| 查看: 265

在云迁移过程中使用rysnc命令进行大批量文件的迁移时,发现迁移后的文件目录较大于原文件目录,示例如下:

迁移前文件目录136M [root@chefserver rsynctest]# du -sh ../rsynctest 136M ../rsynctest 文件迁移 [root@test ~]# rsync -avpgolr --delete root@infrapdpy11nc:/root/rsynctest/ /root/rsynctest/ 迁移后文件目录272M [root@test ~]# du -sh /root/rsynctest 272M /root/rsynctest 1.修正rsync命令解决问题

首先想到是rysnc文件同步命令造成,查看rsync --help,确认-H:–hard-links 保留硬链接文件。命令中没有该参数则不保留硬链接文件。那么对于同步的link文件是生成一份的新的文件。

-a:–archive archive mode 权限保存模式,相当于 -rlptgoD 参数,存档,递归,保持属性等。 -r:–recursive 复制所有下面的资料,递归处理。 -p:–perms 保留档案权限,文件原有属性。 -t:–times 保留时间点,文件原有时间。 -g:–group 保留原有属组。 -o:–owner 保留档案所有者(root only)。 -D:–devices 保留device资讯(root only)。 -l:–links 复制所有的连接,拷贝连接文件。 -z:–compress 压缩模式,当资料在传送到目的端进行档案压缩。 -H:–hard-links 保留硬链接文件。 -A:–acls 保留ACL属性文件,需要配合–perms。 -P:-P参数和 --partial --progress 相同,只是为了把参数简单化,表示传进度。 --version:输出rsync版本。 -v:–verbose 复杂的输出信息。 -u:–update 仅仅进行更新,也就是跳过已经存在的目标位置,并且文件时间要晚于要备份的文件,不覆盖新的文件。 --port=PORT:定义rsyncd(daemon)要运行的port(预设为tcp 873)。 --delete:删除那些目标位置有的文件而备份源没有的文件。 --delete-before: 接收者在传输之前进行删除操作 --password-file=FILE :从 指定密码文件中获取密码。 --bwlimit=KBPS:限制 I/O 带宽。 --filter “-filename”:需要过滤的文件。 --exclude=filname:需要过滤的文件。 --progress:显示备份过程。

文件迁移命令修改为rsync -avrtH --delete

# rsync -avrtH --delete [email protected]:/root/rsynctest/ /root/rsynctest/

迁移后文件目录大小为136M,和迁移前一样。

[root@test ~]# du -sh /root/rsynctest 136M /root/rsynctest 2.复盘:硬链接是共享同一个inode指向的文件

硬连接指通过索引节点来进行连接。在 Linux 的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在 Linux 中,多个文件名指向同一索引节点是存在的。比如:A 是 B 的硬链接(A 和 B 都是文件名),则 A 的目录项中的 inode 节点号与 B 的目录项中的 inode 节点号相同,即一个 inode 节点对应两个不同的文件名,两个文件名指向同一个文件,A 和 B 对文件系统来说是完全平等的。删除其中任何一个都不会影响另外一个的访问。 硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬连接文件均被删除。

1)创建硬链接文件

# cd rsynctest/ # ll total 139040 -rw-r--r--. 1 root root 142376665 Oct 18 2018 jdk-7u67-linux-x64.tar.gz # ln jdk-7u67-linux-x64.tar.gz hardlinktest.file

2)确认硬链接文件创建成功:ll命令的第二个字段数量大于1时,即有硬链接

# ll total 278080 -rw-r--r--. 2 root root 142376665 Oct 18 2018 hardlinktest.file -rw-r--r--. 2 root root 142376665 Oct 18 2018 jdk-7u67-linux-x64.tar.gz

3)查找硬链接文件的所指向的所有文件:ll -i参数显示文件Inode号

# ll -i jdk-7u67-linux-x64.tar.gz 33813249 -rw-r--r--. 2 root root 142376665 Oct 18 2018 jdk-7u67-linux-x64.tar.gz # find . -inum 33813249 ./jdk-7u67-linux-x64.tar.gz ./hardlinktest.file

4)同步前目录大小及文件确认

# du -sh ../rsynctest 136M ../rsynctest # ll /root/rsynctest/ total 278080 -rw-r--r--. 2 root root 142376665 Oct 18 2018 hardlinktest.file -rw-r--r--. 2 root root 142376665 Oct 18 2018 jdk-7u67-linux-x64.tar.gz # ll -i /root/rsynctest/ total 278080 33813249 -rw-r--r--. 2 root root 142376665 Oct 18 2018 hardlinktest.file 33813249 -rw-r--r--. 2 root root 142376665 Oct 18 2018 jdk-7u67-linux-x64.tar.gz

5)不保留硬链接文件同步及同步后的确认

# rsync -avpgolr --delete [email protected]:/root/rsynctest/ /root/rsynctest/ 目录大小272M # du -sh /root/rsynctest 272M /root/rsynctest 第二字段为1,没有硬链接 # ll /root/rsynctest total 278080 -rw-r--r-- 1 root root 142376665 Oct 19 2018 hardlinktest.file -rw-r--r-- 1 root root 142376665 Oct 19 2018 jdk-7u67-linux-x64.tar.gz 文件的inode不一样 # ll -i /root/rsynctest total 278080 159383 -rw-r--r-- 1 root root 142376665 Oct 19 2018 hardlinktest.file 159384 -rw-r--r-- 1 root root 142376665 Oct 19 2018 jdk-7u67-linux-x64.tar.gz

6)保留硬链接文件同步及同步后的确认

# rsync -avrtH --delete [email protected]:/root/rsynctest/ /root/rsynctest/ [email protected]'s password: receiving incremental file list jdk-7u67-linux-x64.tar.gz => hardlinktest.file 目录大小136M # du -sh /root/rsynctest 136M /root/rsynctest 第二字段为2,有硬链接 # ll /root/rsynctest total 278080 -rw-r--r-- 2 root root 142376665 Oct 19 2018 hardlinktest.file -rw-r--r-- 2 root root 142376665 Oct 19 2018 jdk-7u67-linux-x64.tar.gz 文件的inode一样 # ll -i /root/rsynctest total 278080 159383 -rw-r--r-- 2 root root 142376665 Oct 19 2018 hardlinktest.file 159383 -rw-r--r-- 2 root root 142376665 Oct 19 2018 jdk-7u67-linux-x64.tar.gz


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3